win11¢os7安装Subversion与配置 svn服务端 |
您所在的位置:网站首页 › git 本地服务器 win11 › win11¢os7安装Subversion与配置 svn服务端 |
这里写目录标题
windows一、下载二、Subversion安装与配置空格原因:我在旅投科技 搭建就出问题了 ,半天
5. 安装完成会自动配置Path环境变量,这点比较好6. 验证是否安装成功
三、配置版本库1. 为什么要配置版本库?先创建好文件夹层级目录(子版本库),不要执行版本库命令,回头再来执行要先创建、启动服务,再回头创建各个子版本库,否则会报错:unable to connect to repository 期望格式1到6,发现格式8统一认证、鉴权设置6. 为了便于管理,将所有版本库的密码和权限设置在同一个文件下面,操作步骤如下:7. 定义一下几个角色用来测试8. 下面添加角色9. 为角色分配权限:假设(quxin是project1的项目经理,huzhixin是project2的项目经理,dev1、dev2是project1的开发人员,dev3、dev4是project2的开发人员,test1是project1的测试人员,test2是project2的测试人员)
新员工增加权限
注: 一定要看清 svnserver.conf 指定的鉴权文件的路径是 当前目录 还是公共目录,加了新员工账号密码不生效
1. 新员工 指定对版本库 develop的 子目录的权限 authz 文件内问题 svn show log查看失败
四、SVN 忽略不需要提交的文件一、方法一二、方法二 适合单个模块 或单个文件夹下, 本地修改配置,不想上传: ltkj-generator 模块先D盘提交一次之后 , 关闭-打开 idea 发现 已经忽略了xxxx模块的修改
三、忽略文件四、svn:ignore、global-ignores区别:
centos7 安装svn服务端二、安装三、建立版本库创建 仓库的根目录(auth配置文件的"/" 所指
四、配置 参考 windows五、设置开机自启动六、防火墙和阿里云服务器 安全组配置七、测试svn八、创建钩子 使版本库代码 可以同步到web根目录基于Subvision 做服务器,tortoisesvn使用步骤和trunk,branch,tag详细说明(代码片段)更新至特定版本复制档案及目录制作Tag或是ReleaseNOTE:同样的道理Trunk也只是一个约定成俗的名称。不一定要叫Trunk。只是大家看到Trunk目录就会知道这里面放的是主要的开发主干。取得(Checkout)Repository更新(Update)档案或目录Copy/Tag/Branch/Release档案或目录
【SVN】windows SVN安装使用教程(服务器4.3.4版本/客户端1.11.0版本)1、下载和搭建SVN服务器注意:可以选择安装路径,仓库路径,备份路径(不一定非要在c盘)
2、建立用户和组,以及权限的分配新建用户新建组权限的分配
三:客户端TortoiseSVN安装四、一些基本操作SVN 地址变更
windows
一、下载
服务器端程序版本 目前Subversion的最新版本是 1.9.0-alpha2,这是一个测试版。官方网站推荐使用的版本是1.8.9,原话是:The best available version of Apache Subversion is: 1.8.9 下载源码包 https://subversion.apache.org/download.cgi 下载到的文件是:Setup-Subversion-1.8.14.msi 二、Subversion安装与配置双击运行Setup-Subversion-1.8.14.msi 不整合Apache服务器可以忽略此选项 SVN 安装目录不能有中文,和空格:即 Program Files (x86) 不行 空格原因:我在旅投科技 搭建就出问题了 ,半天 5. 安装完成会自动配置Path环境变量,这点比较好D:\Subversion\bin 所以bin目录下的可执行文件可以在dos任意目录下运行。 6. 验证是否安装成功在命令行输入:svn --version 看到如下信息就表示服务器端程序安装成功 要先创建、启动服务,再回头创建各个子版本库,否则会报错:unable to connect to repository 期望格式1到6,发现格式8 1. 为什么要配置版本库? 在一个非中文无空格目录下创建一个文件夹,作为版本库的根目录。 例如:D:\Repository\Subversion在版本库根目录下创建与具体项目对应的子目录——这样做的目的是使一个SVN服务器能够同时管理多个项目,而不是为每一个项目搭建一个SVN服务器——这显然太浪费资源了。 例如: D:\Repository\Subversion\CRM D:\Repository\Subversion\ERP D:\Repository\Subversion\OA 先创建好文件夹层级目录(子版本库),不要执行版本库命令,回头再来执行 要先创建、启动服务,再回头创建各个子版本库,否则会报错:unable to connect to repository 期望格式1到6,发现格式8 创建版本库命令格式 版本库创建成功后会在指定目录下产生如下的目录结构 3.3 启动服务器端程序 ①SVN服务器必须处于运行状态才能响应客户端请求,帮助我们管理项目文件。所以我们必须将SVN服务器启动起来。启动SVN服务器有两种方法,一个是命令行方式,一个是注册Windows服务。 ②命令行方式 [1]命令格式 Subversion安装与配置 8 [2]验证服务是否启动 SVN服务监听3690端口,打开一个新的cmd窗口,使用netstat -an 命令查看3690端口是否被监听 ③注册Windows服务 [1]将SVN服务端程序注册为Windows服务,就可以让SVN服务随系统一起启动,克服了命令行方式的不足。 [2]注册Windows服务需要利用XP、2000以上系统自带工具Service Control,执行文件是sc.exe,注意这个命令不是SVN的命令。 [3]命令格式 depend= Tcpipip 网络层协议 Tcpip
在Win7及以上系统中,运行该命令需要管理员权限,否则会得到如下错误提示
启动此服务 启动服务的命令格式如下: 打开命令行窗口运行netstat –an查看3690端口是否被监听 如果启动失败,那很有可能是binpath中的内容有错误,此时只能将已经创建的服务删除,重新创建。 删除服务之前,最好先停止服务。停止服务的命令格式如下:
6.1 取出project1下面conf文件夹下的authz和passwd两个文件到svnroot根目录下面 6.2 修改每个版本库目录conf文件夹下面的svnserve.conf文件, 将 # anon-access = read ,#auth-access = write ,# password-db = passwd,#authz-db = authz 修改为: anon-access = none ,auth-access= write,password-db = ../../passwd,authz-db = ../../authz (password-db = ../../passwd,authz-db = ../../authz代表相对路径而非绝对路径) 7. 定义一下几个角色用来测试7.1 配置管理员(svnadmin),用来管理整个库 7.2 项目经理(manage),用来相关管理文档 7.3 开发人员 (dev),测试开发是否正常 8. 下面添加角色打开svnroot目录下的passwd文件,创建方法是在[user]下面添加 username = passwd,记得“=”前后的空格,如下图:(svnadmin控制所有项目,统一管理) LTKJ 库目录及具体权限如下图所示: 库目录权限分组: [groups] admin_group = admin java_group = chenming,majihua,wangl,baosanqing synthesis_group = wangzhenlong,liweifan,zhouxiaolin,anxiaoming,houdongmei,zhuwanqing manager_group = yangfule,gehongyan,wangzonghui pre_sales_group = maxun,tianshunda具体权限:(根目录下,svnadmin拥有所有权限,其他人只有读权限,要设置子目录权限, 需设置子目录上级的权限方可,设置个别文件权限如下:) # 指定所有的版本库默认只读,admin_group组可读写 [/] @admin_group = rw # 1. 新员工 指定对版本库 develop的 子目录的权限 [develop:/docs] baosanqing = rw # 1.指定对版本库 develop 根目录的权限 [develop:/] @admin_group = rw @java_group = rw # 2.指定对版本库 doc 根目录的权限 [synthesis:/] @admin_group = rw @synthesis_group = rw # 3.指定对版本库 doc 根目录的权限 [manager-office:/] @admin_group = rw @manager_group = rw # 7.指定对版本库 [公共:/] @admin_group = rw @java_group = rw @synthesis_group = rw @manager_group = rw @pre_sales_group = rw @financial_group = rw @marketing_group = rw启动SVN服务,可在dos命令里启动,也可把SVN服务安装在服务管理里面 把服务在DOS命令里启动方法:svnserve –d –r E:\svnroot 如若把服务安装在服务管理里面,简单的办法,下载一个SVNService.exe文件,放到subversion安装目录的bin文件夹下面,然后在dos命令里运行, 运行方法如下: SVNService –install –d –rE:\svnroot 安装客户端,连接服务器到要访问的库,假如访问project1:svn://172.16.26.28/project1 ,用同样的方法访问project2,依次类推到更多的版本库项目。 工具 SVN 服务器端:Subversion 1.5 ,客户端 TrotoiseSVN 1.5 下载地址:www.iusesvn.com ,你需要注册方可进入下载去下载相关版本的工具。 相关角色的定义 新员工增加权限 注: 一定要看清 svnserver.conf 指定的鉴权文件的路径是 当前目录 还是公共目录,加了新员工账号密码不生效 1. 新员工 指定对版本库 develop的 子目录的权限 authz 文件内[develop:/docs] baosanqing = rw 问题 svn show log查看失败解决办法如下 1.对服务器SVN做以下修改: (1)找到你SVN版本库下conf文件夹下的svnserve.conf文件; (2)打开svnserve.conf文件,将其中名为anon-access的一项设置为 anon-access = none。 这样的话,日志文件即可显示正常。 2.对于第一种方案,需要专门修改服务器的配置,但是一般服务器不会迁就客户端去修改配置,这时需要我们重新安装和服务器配套的svn客户端版本,一般是svn版本过高导致 四、SVN 忽略不需要提交的文件我使用的是 TortoiseSVN,每次提交到svn上的时候我不想提交 .idea 文件夹,不需要列出,服务器也不需要存。因为是编译器的文件,多人维护项目时,总会显示修改。最好的避免类似问题的方法是添加参考文件到该项目的忽略列表。这样就不会出现在提交对话框中。 一、方法一1、文件夹空白处右键 TortoiseSVN → Properties 打开 2、New → Other
4、 提交svn目录属性,这样下次提交的时候就会忽略 .idea 文件 5、取消忽略的文件 选中 Rmove ,提交就可以看到idea文件了 二、方法二 适合单个模块 或单个文件夹下, 本地修改配置,不想上传: ltkj-generator 模块1、右键一个未加入版本控制文件或目录,并从弹出菜单选择TortoiseSVN →Add to Ignore List→ .idea 3、取消忽略 鼠标右键 TortoiseSVN →Remove from Ignore List→ .idea 4、提交时就可以看见了 例如:idea或eclipse的配置文件 、日志文件、 编译目录、打包目录、编辑器备份目录都可以忽略 。 规则如下: .idea *.iml .settings .project .classpath target out bin classes *.bak *.log 四、svn:ignore、global-ignores区别:svn:ignore:只对当前目录有效, 对子目录无效; svn:global-ignores:会对子目录产生递归影响; centos7 安装svn服务端 二、安装subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。 接下来进入指定目录/data 创建一个svn目录, 然后在svn目录下创建一个名为repos的版本库 创建 仓库的根目录(auth配置文件的"/" 所指 [root@localhost ~]# mkdir -p /data/svn [root@localhost ~]# svnadmin create /data/svn/repos [root@localhost ~]# ll /data/svn/repos 总用量 8 drwxr-xr-x 2 root root 54 6月 5 23:40 conf drwxr-sr-x 6 root root 233 6月 5 23:40 db -r--r--r-- 1 root root 2 6月 5 23:40 format drwxr-xr-x 2 root root 231 6月 5 23:40 hooks drwxr-xr-x 2 root root 41 6月 5 23:40 locks -rw-r--r-- 1 root root 229 6月 5 23:40 README.txt [root@localhost ~]#下面有其他目录文件,就意味着你的版本库创建好了,我们进入版本库repos目录下的conf目录进行相关配置,如下图所示 4.1 编辑passwd,添加用户: [users] wangl = wangl chenming = chenming majihua = majihua zhouchicheng = zhouchicheng dev1 = 123456 dev2 = 123456 dev3 = 123456 dev4 = 1234564.2 编辑authz,添加用户: [/]:表示根目录,即 /data/svn [ltkj@ecs-2a35-0721176 conf]$ cat authz [aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups] master = chenming,wangl fronter = zhouchicheng developer = dev1,dev2,dev3,dev4,dev5,dev6 [/] @master = rw # &joe = r # * = [repos:/] @master = rw @developer = rw # * = r anon-access = none:表示禁止匿名用户访问。 auth-access = write:表示授权用户拥有读写权限。 password-db = passswd:指定用户名口令文件,即 passwd 文件。 authz-db = authz:指定权限配置文件,即 authz 文件。 realm = /data/svn :指定认证域,我这里设置的 /data/svn 目录。4.3 编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写) [ltkj@ecs-2a35-0721176 conf]$ cat svnserve.conf [general] anon-access = none auth-access = write ### Uncomment the line below to use the default password file. password-db = passwd authz-db = authz======================================================= 4.4 开启命令 svnserve -d -r /data/svn //到具体的版本库 repos的上一级, 及所谓的版本库根目录 "/" 五、设置开机自启动 vim /etc/sysconfig/svnserve 将默认目录指定到 /data/svn OPTIONS="-r /data/svn" 设置开机自启动 systemctl enable svnserve 重启验证: netstat -tunlp | grep 3690 其他可能用到的命令--------------------------------- 启动svnserve服务 systemctl start svnserve 查看3690 端口是否正常 netstat -ntlp | grep 3690 停止开机自启动 systemctl disable svnserve.service 查看服务当前状态 systemctl status svnserve.service 重新启动服务 systemctl restart svnserve.service 六、防火墙和阿里云服务器 安全组配置 七、测试svn去svn官网 下载svn客户端 自行下载,并测试是否可以使用,此处不做过多描述 下载链接: https://tortoisesvn.net/downloads.html 我们用svn客户端可以使本地代码上传到svn版本库,但是为了开发方便,我们应该使版本库代码实时同步到我们的web根目录,这就是钩子的作用 1.首先我们进入/home/svn/blog/hooks目录下,如下图所示 使用 cp post-commit.tmpl post-commit将post-commit.tmpl 复制一份 然后打开post-commit文件 清空所有内容 粘贴如下代码,//以及后面内容是注释 不要粘贴 #!/bin/sh export LANG =en_US.UTF-8 SVN=/usr/bin/svn WEB=/www/wwwroot/blog //是你想要同步的web根目录 $SVN update $WEB --username ‘chaoyang’ --password ‘123456’ --no-auth-cache //chaoyang 指的前面创建的svn账号 123456指的密码 保存退出之后 给post-commit一个775权限 chmod 775 post-commit 接下来我们进入网站根目录(此处指 /www/wwwroot )并运行如下代码 svn co svn://你的ip/blog 运行之后会让你输入 root的密码 svn账号密码 然后选择yes就完事了 接下来重启svn killall svnserve //杀死svn服务 svnserve -d -r /home/svn //启动svn服务 home目录下的svn 接下来就测试了 你在本地svn客户端添加一个文件 然后 你去看看你相应的web目录 神奇了也有了你添加的文件 此时web代码同步就算大工告成了 基于Subvision 做服务器,tortoisesvn使用步骤和trunk,branch,tag详细说明(代码片段)也是跟 VisiualSVN 服务器一样 需要trunk branck tag 三个文件夹来存放 项目代码 。 安装及下载client 端 下 载Windows 端程序:http://tortoisesvn.net/downloads。 更新至特定版本有时我们需要回溯至特定的日期或是版本,这时就可以利用SVN的Update to revision的功能。在想要更新的档案或目录icon上面按下鼠标右键。并且选择TortoiseSVN->Update to revision。 在这个Update窗口中,您可以选择更新到最新版本(HEAD)。也可以选择更新到某个指定的版本(Revision)。当然,您可能早就记不起来正确的版本号码。可能只隐约的记得大概在什么时间。没关系,按下Show log按钮,您就可以回顾历史了。 所有您曾经做过的动作,及其日期与对应的版本都会列在这个窗口上面,只要在你想要的版上面点一下,让他变成反白,然后按下OK。这个版本就会自动填入Update窗口中的Revision字段中。您只要再按下一次OK,这个版本就会被取出来到您的硬盘中。 复制档案及目录很多时候您会希望有另外一个复制的目录来进行新的编修。等到确定这个分支的修改已经完毕了,再合并到原来的主要开发版本上。举例来说,我们目前在working copy下面有如下的目录及档案: 现在,我们要为trunk这个目录建立一个branch。假设我们希望这个目录是在D:\working\my_prj\branch \my_new_branch_for_testing。首先我们可以在trunk目录下面的空白处,或是直接在trunk的icon下面按下鼠标右键。 在选择Branch/Tag…这个项目后,您将会看到如下的对话框出现。 请先确认From WC at URL: 中的目录是您要复制的来源目录。接着,在To URL中输入您要复制过去的路径。通常我们会将所有的branch集中在一个目录下面。以上面的例子来说,branch档案都会集中在branch的子目 录下面。在To URL中您只需要输入您要的目录即可。目录不存在时,会由SVN帮您建立。特别需要注意的是SVN因为斜线作为目录分隔字符,而非反斜线。 接着在Log message输入您此次branch的目的为何。按下OK就可以了。 如果成功,将可以看到下面的画面: 按下OK就可以关闭这个窗口了。如果您此时立刻去working copy的branch子目录下面,您将会失望的发现在该目录下面并没有刚刚指定的目录存在。这是因为您working copy的部份还是旧的,您只需要在branch子目录下面进行SVN update就可以看到这个新增的目录了。新增的目录就与原来的目录无关了。您可以任意对他进行编辑,一直到您确认好所有在branch下面该做的工作都 完成后,您可以选择将这个branch merge回原来的trunk目录,或者是保留它在branch中。 要merge回trunk目录中,方法很简单。以上面的例子来说,我们在D:\working\my_prj\trunk目录空白处,按下鼠标右键,选择Merge: 接着可以看到如下的画面: 这个画面主要分为三个部份,前面的From: 与 To: 是要问您打算从Branch中的哪个版本到哪个版本,merge回原来的trunk目录中。因此,From跟To的URL字段应当都是指定原来 branch的目录下。剩下的就是指定要merge的revision范围。以上面的例子而言,我们从Branch的Revision 7开始merge到Branch下面的最新版本。您可以透过,Dry run按钮,试作一次Merge。这个merge只会显示一些讯息,不会真正的更新到trunk的目录去。只有按下Merge按钮后,才会真正的将 branch的档案与trunk的档案合并起来。 上面的讯息告诉我们在trunk目录下面的yyyy.cpp及xxx1.cpp已经被更改过了。如果您在现在到trunk目录下,会看到这两个档案处于被修改的状态。 如果您确认这次的merge没有问题,您可以直接使用commit来将这两个被修改的档案commit回SVN repository上。如果有问题,您可以直接修改这两个档案,直到确认ok了,再行commit。
一切顺利的话,您就成功的将branch的档案merge回trunk了。 制作Tag或是Release所谓的Tag或是Release就是一个特别的版本,因为这个版本可能有特别的意义。例如:这个版本是特别的Milestone或是release 给客户的版本。其实,Tag与Release的作法与Branch完全相同。只是Branch可能会需要merge回原来的trunk中,而tag及 release大部分都不需要merge回trunk中。举例来说,今天我们的trunk做了一版,这个版本被认定是软件的1.0版。1.0版对于开发来 说是一个非常重要的里程碑。所以我们要特别为他做一个标记,亦即Tag。假设,这个 1.0版是要正式release给客户或是相关vendor,我们要可以为他做一个Release的标记。基本上,SVN只有目录的概念,并没有什么 Tag的用法。所以您会看到再SVN的选单上面,Branch与Tag是同一个项目。以这个1.0的例子来说,我们就是在Trunk上面,按下鼠标右键, 选择Branch/Tag的项目:
成功的话,您就在Tag目录下面建立了一个1.0的目录。当然,如果您这时到Tag的目录下面去,会看不到这个目录,您需要在Tag目录下面update一下,才能看到它。 制作Release的作法与Tag完全相同。只是把Tag的目录换成Release而已。 看到这里,相信大家都已经领悟到无论是Branch,Tag或是Release都只是将指定的 Trunk版本复制一份到另外一个目录去。至于这个目录要叫Branch还是叫Release,SVN根本就不管。所以,您也可取其它的目录名称。不 过,Branch,Tag及Release已经是SVN上面约定成俗的名称。所以,除非您知道自己为何这样做,否则,最好还是follow这个命名原则, 以免后面新加入的人看不懂。 NOTE:同样的道理Trunk也只是一个约定成俗的名称。不一定要叫Trunk。只是大家看到Trunk目录就会知道这里面放的是主要的开发主干。快速参考 在后面的说明,皆以d:\working当作工作目录。您可以将他换成其它任何您想要的目录。 取得(Checkout)Repository开启档案管理员,进入d: 在档案管理员空白处按下鼠标右键,选择SVN Checkout 在Checkout对话框中, URL of repository:repository的位置。 Checkout directory:要存放working copy的地方。 若d:\working目录不存在,SVN会问您要不要建立这个目录,请选择Yes。 接着按下OK,即可checkout该目录。 在您要由repository更新至working copy的档案或是目录的icon上面按下鼠标右键。选择SVN Update即可。 如果是要更新至特定的版本,则选择TortoiseSVN->Update to revision。并且在Update对话框中的Revision字段输入您要的版本。也可以透过Show Log按钮来查看版本的信息。 新增(Add)档案或目录 在尚不属于repository的档案或目录的icon上按下鼠标右键。选择TortoiseSVN->Add。 选取要新增的档案。 按下OK。 NOTE:新增的档案要经过提交(Commit)的动作才回真正的放入Repository中。 提交(Commit)修改过的档案或目录 在修改过的档案,或是在整个目录的空白处按下鼠标右键。 勾选真正要提交至Repository的档案或目录。 输入本次提交的纪录讯息(Message)。这个讯息应该要清楚明了,但不应过份简单。以利日后版本追踪。 按下OK。 确认您要处理的档案或是目录已经是Repository中最新的版本。 在要处理的目录或是档案上面按下鼠标右键,选择TortoiseSVN->Branch/Tag。 在To URL处输入您要的目的地。 branch:要产生一个分支。以区别与trunk不同的开发。 tag:要形成一个标记,表示重要的milestone。 release:表示一个已经正式的release的纪录。 其它:进行一个复制(copy)。 步骤: 1、下载和搭建SVN服务器
点击install,进入如下图的安装 点击finish就下载完了 2、建立用户和组,以及权限的分配安装完成后,启动VisualSVN Server Manager 可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等. 要建立版本库,需要右键单击左边窗口的Repositores,如下图:
可以随意取名字,或者你项目的名字 在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create User或者新建->User,如图: 点击user,进入下图: 填写Username和password后,点击ok按钮,可以看到以下界面(下图为刚刚创建的用户) 建立用户组,在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create Group或者新建->Group,如图: 点击上面的【Add】按钮后,如下图 增加test1到组中(如果有多个用户,操作一样)。 右击myRepository,点击Properties 点击add添加用户的权限
———————————————— 2、 注意:出现这个界面的时候,需要点击红色的地方,选择第一个选项安装命令行 如上图箭头所示,在安装 TortoiseSVN 的时候,默认 command line client tools,是不安装的,这里建议勾选上。 只有安装了该选项,idea中才可以使用SVN,才会有svn.exe文件 3、再一直下一步!! 4、中文安装包 1、在服务端获取svn检出的地址 打开服务端,右击myRepository,点击copy URL to Clipboard,即可复制路径了
SVN 创建资源库后,再更换 ip 或端口, server 端client 端 Relocate…![]() svn服务地址改变了,只需重新relocate:
解决方案: 1.cd 项目目录/.svn 2.编辑wc.db文件,通过搜索原uuid找到文件中的uuid,全部替换。———————————————— |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |